package com.zj.mes.common.service;

import com.zj.mes.common.entity.Customer;
import com.zj.mes.common.entity.Order;
import com.zj.mes.util.MyException;

import java.util.List;
import java.util.Map;

/**
 * @ClassName ICustomerService
 * @Description 用户信息管理service接口
 * @Author 王晓楠
 * @Date 2019/04/23 14:10
 * @Version 1.0
 **/
public interface OrderInfoService {
    /**
     * 按照查询条件查询用户列表
     * @param query
     * @return
     */
    Map<String, Object> listCustomer(Map<String, Object> query);

    /**
     * 按照订单id查询订单信息
     * @param customerId
     * @return
     */
    Map<String, Object> getCustomer(Integer customerId, String userName);

    /**
     * 按照订单id对订单信息进行逻辑删除
     * @param customerId
     */
    void delCustomer(String customerId, String userId);

    /**
     * 添加订单信息
     * @param customer
     */
    int addCustomer(Customer customer) throws MyException;

    /**
     * 修改订单信息
     * @param customer
     */
    void updateCustomer(Customer customer);

    /**
     * 订单批量添加
     * @param map
     * @throws MyException
     */
    void addCustomers(Map<String, Object> map) throws MyException;

    /**
     * 订单来源统计
     * @param map
     * @return
     */
    Map<String, Object> customerResourceCount(Map<String, Object> map);

    /**
     * 订单量统计
     * @param map
     * @return
     */
    Map<String, Object> customerCount(Map<String, Object> map);

    /**
     * 获取所有产品信息
     * @return
     */
    List<Map<String, Object>> listProducts();

    /**
     * 添加订单与业务员之间的关联
     * @param empId
     * @param customerId
     */
    void addCustomerToUser(Integer empId, Integer customerId);

    /**
     * 获取登录信息
     * @param shiroUserName
     * @return
     */
    Map<String, Object> getLoginInfo(String shiroUserName);

    /**
     * 选择共享的订单
     * @param selMap
     */
    void selCustomer(Map selMap);

    /**
     * 选择订单时判断是否已经被选择了
     * @param customerId
     * @return
     */
    boolean isSel(String customerId);

    /**
     * 添加跟进记录
     * @return
     */
    int insertNewFollowInfo(String customerId);

    /**
     * 获取所有工艺路线
     * @return
     */
    List<Map<String, Object>> listWorkCenterCrafts();

    int addOrders(Order order);

    void addOrdersToUser(Integer userId, Integer id);
}
